#!/usr/bin/env node

/**
 * 快速启动后端服务器
 */

require('dotenv').config();
const app = require('./src/app');

const PORT = process.env.PORT || 3001;

console.log('🚀 启动CMB250716后端服务器...');
console.log('=' .repeat(40));
console.log(`📍 端口: ${PORT}`);
console.log(`🌍 环境: ${process.env.NODE_ENV || 'development'}`);
console.log(`🔑 JWT配置: ${process.env.JWT_SECRET ? '✅' : '❌'}`);
console.log('');

// 启动服务器
const server = app.listen(PORT, () => {
  console.log(`✅ 服务器已启动`);
  console.log(`📍 本地地址: http://localhost:${PORT}`);
  console.log(`📍 健康检查: http://localhost:${PORT}/health`);
  console.log(`📍 API文档: http://localhost:${PORT}/api-docs`);
  console.log('');
  console.log('按 Ctrl+C 停止服务器');
});

// 错误处理
server.on('error', (error) => {
  if (error.code === 'EADDRINUSE') {
    console.error(`❌ 端口 ${PORT} 已被占用`);
    console.log('💡 尝试使用其他端口或停止占用该端口的进程');
  } else {
    console.error('❌ 服务器启动失败:', error.message);
  }
  process.exit(1);
});

// 优雅关闭
process.on('SIGINT', () => {
  console.log('\n🛑 正在关闭服务器...');
  server.close(() => {
    console.log('✅ 服务器已关闭');
    process.exit(0);
  });
});

process.on('SIGTERM', () => {
  console.log('\n🛑 正在关闭服务器...');
  server.close(() => {
    console.log('✅ 服务器已关闭');
    process.exit(0);
  });
});